package edu.zut.controller;

import edu.zut.pojo.UserInfo;
import edu.zut.service.HelloService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpSession;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;


/**
 * 将其视为控制器，能够映射一组请求和响应
 * @Controller:标注在类上，标明当前类是一个控制器
 */
@Controller
public class HelloController {
    /**
     * @Autowired :标注在属性或方法上，表示按照类型完成属性的注入（赋值）
     */
    @Autowired
    HelloService helloService;

    /**
     * http://localhost:8080/hello
     * @RequestMapping ：可以标注在类或方法上
     *  标注在方法上：意味着当前方法可以映射一个或一组请求
     * @ResponseBody ：表示当前请求的返回数据是以响应体返回
     */
    @RequestMapping(value = "/hello")
    @ResponseBody
    public String hello(){
        helloService.testService();

        return "hello world!!!!";
    }


    @GetMapping("toHello")
    public String toHello(Map<String,Object> map, Model model, HttpSession session){
        map.put("msg","欢迎访问Thymeleaf");
        UserInfo userInfo = new UserInfo();
        userInfo.setEmail("71003597@qq.com");
        userInfo.setUsername("jack");
        userInfo.setPassword("123");
        map.put("info",userInfo);
        //model相当于request
        model.addAttribute("nowDate", LocalDate.now());
        userInfo.setEmail("78978797987897@163.com");
        session.setAttribute("info2",userInfo);


        UserInfo userInfo2 = new UserInfo("jack", "123", "45645@qq.com");
        UserInfo userInfo3 = new UserInfo("rose", "12345", "4564578@qq.com");
        List<UserInfo> infos = new ArrayList<>();
        infos.add(userInfo);
        infos.add(userInfo2);
        infos.add(userInfo3);
        map.put("infos",infos);

        //使用thymeleaf返回视图时，直接return 视图名称
        return "hello";
    }



}
